Distributed computing technologies have enabled multiple computing resources to provide coordinated or distinct solutions. An example of distributed computing, cloud computing brings together multiple systems to provide solutions to user needs. Cloud computing can span a vast array of computing resources. The computing resources utilized in cloud computing applications may be dispersed across networks and locations. Dispersed computing resources are remotely controlled and managed. Usually, automated systems monitor and troubleshoot problems associated with dispersed computing resources. Manual troubleshooting by human components of widely dispersed computing resources is not cost effective.
Conventional monitoring solutions for cloud computing systems performance have limitations. The amount of data generated by cloud computing systems is vast. Computing power necessary to analyze and produce performance metrics from the data is equally large. Conventional solutions typically rely on threshold based implementations. Such implementations are usually inflexible and rarely meet customer demands for redirecting servers to other purposes. Current monitoring implementations also frequently require human intervention to configure parameters and other values to maintain normalized operations. Additionally, data mining and other end-user based post-analysis needs are rarely met by current approaches.